colokar sistema de slot + dai nao vai ser de +1 magic level, vai ser de 1% 10% etc depende de qual vc colokar, eu tentei procurar um tipo assim que tem uma porcentagem para cada pedra, eu tenho varias pedra e cada uma tem um tanto correto de % 1 pedra azul outra amarela e outra vermelha isto é um exemplo a pedra azul me da 10% de life, amarela me da 5% de distance e a vermelha me da 20% de skil de club axe sword, ja tentei procurar `+ as que eu encontro sao todas aleatorias ^^
- Fórum
- OTServ
- Suporte
- Tópicos Sem Resposta
- [Encerrado] Dar Atributo A Itens Com Gemas
[Encerrado] Dar Atributo A Itens Com Gemas
Por lyraelloko, 21 de nov. de 2012 em Tópicos Sem Resposta
info
Grupo: Visconde
Registrado: 11/04/12
Posts: 328
Reputação: +7
Char no Tibia: ADM MiHawk

info
Grupo: Marquês
Registrado: 06/11/11
Posts: 1.1k
Reputação: +109
Char no Tibia: Stroked

colokar sistema de slot + dai nao vai ser de +1 magic level, vai ser de 1% 10% etc depende de qual vc colokar, eu tentei procurar um tipo assim que tem uma porcentagem para cada pedra, eu tenho varias pedra e cada uma tem um tanto correto de % 1 pedra azul outra amarela e outra vermelha isto é um exemplo a pedra azul me da 10% de life, amarela me da 5% de distance e a vermelha me da 20% de skil de club axe sword, ja tentei procurar `+ as que eu encontro sao todas aleatorias ^^
Creio que você não ajudou... Visando a pergunta dele ele pede o script...
Aqui está Lyraelloko:
Sistema de Refinamento Perfeito!
Olá pessoal estava andando pelo Otland e me deparei com este script, porem ele está atualizado e os créditos vão inteiramente para o Mock, criador do mesmo.
Este script funciona da seguinte maneira é uma pedra preciosa (o script) e quando você usa ela em alguma arma ela adiciona alguns pontos de ataque e defesa a mais durante algum tempo e depois volta ao normal.
Vamos ao que interessa:
Formulario:
Autor: Mock.
Servidor testado: TFS 0.3.6
Versão: 1.1
Vá ate data/actions/actions.xml e adicione essa tag:
<action itemid="8306" script="upgrade.lua"/>
Depois salve e vá na pasta scripts e crie o upgrade.lua e dentro dele coloque isto:
--- Perfect refine system by Mock the bear (MTB).
--- Email: mock_#####@hotmail.com
local gain = {
gainArmor='&p+1',loseArmor='&p-1',
gainShield='&s+#',loseShield='&s-(#+1)',
gainAttack='&a+(2*(#))',loseAttack='&a-(2*(#+1))',
gainDefense='&d+(2*(#))',loseDefense='&d-(2*(#+1))',
chance='100/((#*(1/(@/2)))*(@/2))', -- Eu fiz essa equação para variar de +0 a +7 o item
--- Essa equação deve retornar em % a chance do item se refinar (0-100) 100 = sempre, 0 = nunca
maxlvl = 7,
blocked_ids = {2488,8881}
}
-- &a = weapon attack
-- &d = weapon defense
-- &s = shield defense
-- &p = armor defense
-- # = nivel do item
-- @ = max level
if not setItemName then
function setItemName(uid,name)
return doItemSetAttribute(uid,'name',name)
end
function setItemArmor(uid,name)
return doItemSetAttribute(uid,'armor',name)
end
function setItemDefense(uid,name)
return doItemSetAttribute(uid,'defense',name)
end
function setItemAttack(uid,name)
return doItemSetAttribute(uid,'attack',name)
end
function getItemAttack(uid)
return getItemAttribute(uid,'attack')
end
function getItemDefense(uid)
return getItemAttribute(uid,'defense')
end
function getItemArmor(uid)
if type(uid) == 'number' then
return getItemAttribute(uid,'armor')
else
return getItemInfo(uid.itemid).armor
end
end
end
function isArmor(uid) -- Function by Mock the bear.
if (getItemArmor(uid) and getItemArmor(uid) ~= 0 and not getItemInfo(uid.itemid,'attack') and not getItemInfo(uid.itemid,'defense') and getItemWeaponType(uid.uid) == 0) then
return true
end
return false
end
function isWeapon(uid) -- Function by Mock the bear.
uid = uid or 0
local f = getItemWeaponType(uid)
if f == 1 or f == 2 or f == 3 then
return TRUE
end
return FALSE
end
function isShield(uid) -- Function by Mock the bear.
uid = uid or 0
if getItemWeaponType(uid) == 4 then
return TRUE
end
return FALSE
end
function getWeaponLevel(uid) -- Function by Mock the bear.
uid = uid or 0
local name = getItemName(uid)
local lvl = string.match(name,'+(%d)')
return tonumber(lvl) or 0
end
function doTransform(s,i) -- Function by Mock the bear.
local c = string.gsub(s,'@',gain.maxlvl)
local c = string.gsub(c,'&a',getItemAttack(i.uid) or getItemInfo(i.itemid).attack)
local c = string.gsub(c,'&d',getItemDefense(i.uid) or getItemInfo(i.itemid).defense)
local c = string.gsub(c,'&s',getItemDefense(i.uid) or getItemInfo(i.itemid).defense)
local c = string.gsub(c,'&p',getItemArmor(i.uid) or getItemInfo(i.itemid).armor)
local c = string.gsub(c,'#',getWeaponLevel(i.uid))
local q,err = loadstring('return '..c)
assert(q,err)
return assert(q())
end
function onUse(cid, item, fromPosition, itemEx, toPosition)
toPosition.stackpos = 255
if isInArray(gain.blocked_ids, itemEx.itemid) == TRUE
or getItemWeaponType(itemEx.uid) > 4
or (getItemWeaponType(itemEx.uid) == 0
and isArmor(itemEx) == FALSE)
or itemEx.itemid == 0 then
doPlayerSendTextMessage(cid, 24,"You cant refine this item.")
return TRUE
end
if isCreature(itemEx.uid) == TRUE then
return FALSE
end
local level = getWeaponLevel(itemEx.uid)
local chance = doTransform(gain.chance,itemEx)
if chance >= math.random(0,100) or item.actionid >= 1000 or (item.actionid == 500 and math.random(0,100) <= 25) then
if level+1 > gain.maxlvl then
doSendMagicEffect(toPosition, 2)
return doPlayerSendTextMessage(cid, 24,"Your item is on max level, you can't upgrade it.")
else
setItemName(itemEx.uid, getItemNameById(itemEx.itemid)..' +'..(level+1))
doPlayerSendTextMessage(cid, 24,"Your item has been upgrated to +"..(level+1)..".")
doSendMagicEffect(toPosition, 12)
if isArmor(itemEx) == TRUE then
local get = doTransform(gain.gainArmor,itemEx)
setItemArmor(itemEx.uid,get)
elseif isWeapon(itemEx.uid) == TRUE then
setItemAttack(itemEx.uid, doTransform(gain.gainAttack,itemEx))
setItemDefense(itemEx.uid, doTransform(gain.gainDefense,itemEx))
elseif isShield(itemEx.uid) == TRUE then
setItemDefense(itemEx.uid, doTransform(gain.gainShield,itemEx))
end
end
else
if level == 0 then
doPlayerSendTextMessage(cid, 24,"No effect.")
doSendMagicEffect(toPosition, 2)
elseif level == gain.maxlvl then
doSendMagicEffect(toPosition, 2)
return doPlayerSendTextMessage(cid, 24,"Your item is on max level, you can't upgrade it.")
elseif level > 0 then
if level == 1 then
setItemName(itemEx.uid, getItemNameById(itemEx.itemid))
doPlayerSendTextMessage(cid, 24,"Your item back to normal.")
else
setItemName(itemEx.uid, getItemNameById(itemEx.itemid)..' +'..(level-1))
doPlayerSendTextMessage(cid, 24,"Your item back to +"..(level-1)..".")
end
if isArmor(itemEx) == TRUE then
setItemArmor(itemEx.uid,doTransform(gain.loseArmor ,itemEx))
elseif isWeapon(itemEx.uid) == TRUE then
setItemAttack(itemEx.uid, doTransform(gain.loseAttack,itemEx))
setItemDefense(itemEx.uid, doTransform(gain.loseDefense,itemEx))
elseif isShield(itemEx.uid) == TRUE then
setItemDefense(itemEx.uid, doTransform(gain.loseShield,itemEx))
end
end
doSendMagicEffect(toPosition, 9)
end
doRemoveItem(item.uid,1)
return TRUE
end
Pronto seu server já possui o sistema de refinamento. Basta pegar o item 8306 dar usewith nele em uma arma, armor, shield e pronto! O item irá subir de nivel melhorando seu status, caso você ponha actionid 1000 no item 8306 a chance de falha será 0 ou seja sempre funcionará!
Observe a imagem:

Editado Novembro 24 por GuizitoG
info
Grupo: Campones
Registrado: 12/12/07
Posts: 26
Reputação: 0
Char no Tibia: Master Del Lyra

GuizitoG obrigado mais esse script ai eu ja tenho no meu ot, e fika meio chato só isso, queria tipo do q o JeanCristian falou assim ficaria mais interessante, e os players nao teriam armaduras q tem def alta ou armas apelonas com atk alto, eu queria mesmo um sistema de % com slots, mesmo assim obrigado
info
Grupo: Herói
Registrado: 28/11/10
Posts: 3.4k
Reputação: +585
Gênero: Masculino

+ Caso a dúvida não tenha sido resolvida você poderá criar outro tópico solicitando ajuda.
* Lembre-se que é permitido dar UP no tópico a cada 24 horas para assim o destacar e manter movimentado.




info
Grupo: Campones
Registrado: 12/12/07
Posts: 26
Reputação: 0
Char no Tibia: Master Del Lyra
olá
queria saber se é possivel colocar um item para que os players do meu ot server posso adcionar atributos nos itens deles ex:
eu tenho uma plate armor e queria colocar um atributo nela vamos dizer que quero colocar +1 de magic level nela, entao eu pego um iten especifico adiciono nessa plate armor ou em qualquer outro iten independente se é uma armadura uma arma ou shield etc.. este item adiciona o atributo desejado, será que é possivel ?
alguem ?